今天正式完成 Patient(患者)、Physiotherapist(物理治療師)、Doctor(醫師)
三個角色專屬的 API 與分析服務,系統後端邁入智慧化分析與角色分工的新階段!🎉
PatientDashboardService
位於 src/services/PatientDashboardService.js
,負責處理患者儀表板的所有商業邏輯,
內部包含:
getActiveTasks(patientId)
:查詢進行中的復健任務並計算完成比例getWeeklyStats(patientId)
:彙整一週的運動次數、疼痛變化、活動度getAchievements(patientId)
:計算徽章與里程碑(使用 MongoDB Aggregation Pipeline)getProgressTrends(patientId)
:分析長期進展趨勢並回傳統計資料資料處理重點
$match
+ $group
做分週統計,減少前端計算負擔GET /api/patient/dashboard
:取得個人進度與統計GET /api/patient/achievements
:取得徽章與成就這些路由會先經過
authMiddleware
驗證,再調用PatientDashboardService
的方法。
PhysiotherapistWorkflowService
位於 src/services/PhysiotherapistWorkflowService.js
,包含:
getPatientOverview(therapistId)
:列出治療師名下的所有患者,附帶風險評分getWorkloadStats(therapistId)
:計算當週工作量、任務完成率與截止警示getActivityFeed(therapistId)
:回傳患者最新的康復活動記錄generatePerformanceMetrics(therapistId)
:彙整表現指標,用於後續報表或儀表板圖表程式實作重點
populate
載入患者與任務關聯資料,減少多次查詢limit
與 skip
支援分頁查詢,提升大型資料集效能GET /api/therapist/patients
:取得患者總覽與風險指標GET /api/therapist/workload
:回傳治療師工作量與效能統計GET /api/therapist/activity
:患者活動即時動態DoctorOversightService
位於 src/services/DoctorOversightService.js
,功能包含:
getPopulationHealth(doctorId)
:跨治療師的患者群體健康監測getTreatmentOutcomes(doctorId)
:依療程類別分析治療成果getProviderPerformance(doctorId)
:比較不同治療師的績效指標getCriticalAlerts(doctorId)
:回傳需要立即關注的高風險患者清單程式實作重點
$facet
與 $lookup
做多維度報表輸出GET /api/doctor/overview
:群體健康與療效分析GET /api/doctor/alerts
:重大風險警示角色 | Method | Endpoint | 功能 |
---|---|---|---|
Patient | GET | /api/patient/dashboard |
個人進度統計 |
Patient | GET | /api/patient/achievements |
成就徽章 |
Physiotherapist | GET | /api/therapist/patients |
患者總覽與風險 |
Physiotherapist | GET | /api/therapist/workload |
工作量統計 |
Physiotherapist | GET | /api/therapist/activity |
即時動態 |
Doctor | GET | /api/doctor/overview |
群體健康與療效 |
Doctor | GET | /api/doctor/alerts |
重大風險警示 |
Service Layer 設計:
三個角色皆採獨立的 Service Class,清楚劃分商業邏輯,方便測試與維護。
資料庫最佳化:
權限驗證:
回傳格式統一:
所有 API 回傳 { success: boolean, data: {...}, message?: string }
,方便前端直接渲染。
完成這三個角色的 API 後,系統已具備:
這些程式碼奠定了系統進入臨床決策支援的基礎,接下來的目標將是
前端儀表板的可視化呈現與資料查詢效能優化,
讓使用者能即時獲取關鍵指標,真正實現「資料驅動復健決策」。
專案Github Repo : https://github.com/CHING-WENLAI1031/Rehab_Tracker